package com.wangxinyuchuan.demo.singleton;

import java.lang.reflect.InvocationTargetException;

/**
 * 不仅可以解决线程同步，还可以解决反序列化
 * 因为枚举没有构造方法，我们所看到的长得像私有构造方法的其实并不是构造方法，
 * 所以无法通过反射获取class对象进行newInstance
 */
public enum Demo8 {

    INSTANCE;

    private Demo8() {}



    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
        // 模拟多线程获取单例对象
        for (int i = 0; i < 100; i++) {
            new Thread(() -> {
                System.out.println(Demo8.INSTANCE.hashCode());
            }).start();
        }
    }
}
